package com.bfly.mall.wechat.minipro.dto.message;

import com.alibaba.fastjson.JSONObject;

import java.util.Date;

/**
 * 微信订单取消成功通知
 *
 * @author 长沙商脉科技有限公司
 * @date 2020/12/13 18:54
 */
public class WeChatCancelSuccessMessage extends WeChatSubscribeMessage {

    private static final long serialVersionUID = -735972131124409150L;

    /**
     * 所需下发的订阅模板id
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/13 13:57
     */
    private String templateId = "Vhaz_Bo8l3Df5LdpIZfjErBYgzaOCCyQCQBQRWI2MjA";

    /**
     * 产品名称
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/13 20:13
     */
    private String productName;

    /**
     * 取消时间
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/13 20:14
     */
    private Date time;

    /**
     * 取消原因
     *
     * @author 长沙商脉科技有限公司
     * @date 2020/12/13 20:14
     */
    private String reason;

    @Override
    public String toString() {
        JSONObject json = new JSONObject();
        json.put("touser", getTouser());
        json.put("template_id", getTemplateId());
        json.put("page", getPage());
        json.put("miniprogram_state",getState());

        JSONObject dataJson = new JSONObject();

        JSONObject valueJson = new JSONObject();
        valueJson.put("value", getOrderNo());
        dataJson.put("number1", valueJson);

        valueJson = new JSONObject();
        valueJson.put("value", getProductName());
        dataJson.put("name2", valueJson);

        valueJson = new JSONObject();
        valueJson.put("value", getTime());
        dataJson.put("date3", valueJson);

        valueJson = new JSONObject();
        valueJson.put("value", getReason());
        dataJson.put("thing5", valueJson);


        super.cutValueLength(dataJson);
        json.put("data", dataJson);
        return json.toJSONString();
    }

    public String getTemplateId() {
        return templateId;
    }

    public void setTemplateId(String templateId) {
        this.templateId = templateId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public Date getTime() {
        return time;
    }

    public void setTime(Date time) {
        this.time = time;
    }

    public String getReason() {
        return reason;
    }

    public void setReason(String reason) {
        this.reason = reason;
    }
}
